草庐IT

C++-Linux : Capturing the mouse ala VirtualBox

全部标签

c++ - 使用 GetModuleHandle 获取指向 IMAGE_DOS_HEADER 的指针?

一旦我的进程加载到内存中,我就试图获取它的图像库。据我了解,您可以调用GetModuleHandle来获取图像库。我的问题是,返回的句柄是否实质上指向IMAGE_DOS_HEADER结构,以便您可以执行以下操作:PIMAGE_DOS_HEADERDosHeader;DosHeader=(PIMAGE_DOS_HEADER)GetModuleHandle(NULL);如果这不正确,您还可以使用什么其他方法? 最佳答案 这是正确的,但如果您想要dll的模块句柄,则需要指定其路径。否则,您将获得进程exe的句柄。您还应该首先检查返回的HM

c - 为什么这个 MSVC API 是这样定义的?

errno_t_dupenv_s(char**buffer,size_t*sizeInBytes,constchar*varname);我有几个问题:为什么需要指向指针(**)的指针而不是指针(*)?为什么sizeInBytes是必需的,strlen(buffer)不可用吗? 最佳答案 msvc下任何以_s为后缀的函数都是安全函数,这意味着它不会对传递的数据的完整性做出任何假设。正是出于这个原因,字符串的长度是必需的,因为您不能假设它以null终止或根本终止(您可能也只想要一半的字符串,但这是副作用)。安全函数都返回错误代码,这样就

Java 打印 : Windows vs Linux

我有一个java程序,它使用jcifs库-sambastuff将文件写入远程机器文件系统;SmbFile=>SmbFileOutputStream=>PrintStream并且我使用普通的println(String)。一切正常,直到我将我的应用程序移动到Linux机器上,现在我远程Windows机器上的打印文件看起来很奇怪。我认为问题在于两个操作系统如何处理由println()函数插入的CR、LF。我的“jar”每天执行一次,它由“crontab”通过“sh”启动文件触发。有没有办法在不接触Java代码的情况下解决问题?有没有一种方法可以编写java程序使其在两种操作系统(可能是所有

c - FIFO 不会在读取时阻塞

为什么下面的程序不会在第二次read调用时阻塞?intpid=fork();if(pid){intfifo=open("testfifo",O_RDWR);charbuf[20];while(1){read(fifo,buf,10);puts(buf);}}else{intfifo=open("testfifo",O_WRONLY);write(fifo,"teststring",10);close(fifo);}return0;第二个read调用继续返回0,即使fifo变空并且它应该阻塞read调用。我错过了什么吗?操作系统是Windows,管道是用mknodtestfifop创建的

c++ - Windows 中 _strnicmp 的 LPTSTR 等价物是什么?

是否有一个LPTSTR等效于_strnicmp,它接收2个LPTSTR字符串,以及要比较的TCHAR数量?使用cwinapi顺便说一句 最佳答案 它是_tcsncicmp,见thedocumentation. 关于c++-Windows中_strnicmp的LPTSTR等价物是什么?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/7525844/

c - Visual Studio 2010 运行时检查失败 #3

看来微软在VS2010上又要适得其反了。这是我的代码#include"string.h"typedefstructs_test{unsignedchara[20];}t_test,*p_test;voidinitialize(t_testt){memset(t.a,0,20);}voidmain(){t_testt;initialize(t);}它抛出Run-TimeCheckFailure#3-Thevariable't'isbeingusedwithoutbeinginitialized.嗯...因为在其他情况下,运行时检查器确实有帮助,所以我不太可能在解决方案中将其关闭。但是我到

Java 数字格式 - #.## - Windows 和 Linux

我正在使用以下代码来格式化双数DecimalFormatdecimalFormat=newDecimalFormat("#.##");decimalFormat.format(1.04)但这给出了java.lang.NumberFormatException:Forinputstring:"1,04"在Linux中-但在Windows7中这工作正常,如何纠正这个问题? 最佳答案 关于java数字格式,这里似乎回答了一个非常相似的问题(DecimalFormatandDouble.valueOf())。基本上,您遇到的差异可能与Win

c - Windows 服务 C

我已经用C语言编写了一个Windows服务,但是缺少关于用这种语言编写服务的文档意味着我有一些事情需要帮助。我想创建一个配置文件,服务会读取该配置文件以获取一些设置/选项。我想知道最好的方法是什么以及如何去做。服务.exe将与其他文件/程序一起安装在用户指定的位置。我的第一个问题是,我应该将此配置文件保存在与服务.exe相同的目录中,还是应该将其放在我为我的程序创建的%appdata%文件夹中?服务如何找到配置文件。我应该将配置文件的位置存储在注册表中并将注册表项硬编码到服务中吗?或者是否可以安装该服务,使其将配置文件路径作为默认命令行参数?或者我应该将我的配置文件保存在与服务.exe

c++ - 我可以通过哪些方式从 Windows 工作站在 Linux 中开发 C++ 应用程序?

我正在为Linux开发C++应用程序,但我的工作站是Windows7。我读到VisualStudio是最强大的WindowsC++IDE,但我实际上想在Ubuntu上执行代码并能够使用比gdb在图形上更令人愉悦的调试器,尽管gdb的功能非常好。我对valgrind也很满意,但同样,我希望能够在Windows的IDE中利用它。我目前使用QtCreator作为我的C++IDE,我通过samba挂载到linuxbox来编辑文件。我使用Putty来运行Linux命令。我使用git作为源代码控制系统,使用gcc作为编译器,使用cmake作为构建系统。我喜欢QtCreator,但在配置它时,我没有

android - 将 Android 开发人员从 Linux 过渡到 Windows : toolchain signes APK differently?

我已经在Linux和Eclipse上开发我的Android应用程序一年了。出于多种原因决定切换到Windows。克服了所有障碍,现在我的应用程序可以在Windows中正常构建和导出。ADT接受并使用我的开发人员证书-存储密码和key密码工作正常。生成的应用程序在真实设备上安装正常,并且看起来签名正常,但AndroidMarket将不接受应用程序更新的上传并出现以下错误:“apk必须使用与之前版本相同的证书进行签名”回到Linux,我生成了APK并可以正常上传。显然,工具链正在生成不同的二进制文件。使用diff验证。我在两个平台上使用相同版本的Java。我正在使用相同的keystore和